home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / lisp / packages / fontl-hooks.el.z / fontl-hooks.el
Encoding:
Text File  |  1998-05-21  |  3.4 KB  |  88 lines

  1. ;;; fontl-hooks.el --- pre-loaded stuff for font-lock.
  2.  
  3. ;; Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
  4. ;; Copyright (C) 1995 Amdahl Corporation.
  5. ;; Copyright (C) 1996 Ben Wing.
  6.  
  7. ;; This file is part of XEmacs.
  8.  
  9. ;; XEmacs is free software; you can redistribute it and/or modify it
  10. ;; under the terms of the GNU General Public License as published by
  11. ;; the Free Software Foundation; either version 2, or (at your option)
  12. ;; any later version.
  13.  
  14. ;; XEmacs is distributed in the hope that it will be useful, but
  15. ;; WITHOUT ANY WARRANTY; without even the implied warranty of
  16. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17. ;; General Public License for more details.
  18.  
  19. ;; You should have received a copy of the GNU General Public License
  20. ;; along with XEmacs; see the file COPYING.  If not, write to the 
  21. ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  22. ;; Boston, MA 02111-1307, USA.
  23.  
  24. ;;; Synched up with: FSF 19.30. (font-lock.el)
  25.  
  26. ;;; Commentary:
  27.  
  28. ;; The reason for the existence of this file is so that modes can
  29. ;; call `font-lock-set-defaults' without worrying about whether
  30. ;; font-lock is loaded.  We don't autoload this from font-lock.el
  31. ;; because loading font-lock.el automatically turns font-lock on.
  32.  
  33. ;;; Code:
  34.  
  35. (defun font-lock-set-defaults (&optional explicit-defaults)
  36.   "Set fontification defaults appropriately for this mode.
  37. Sets `font-lock-keywords', `font-lock-keywords-only', `font-lock-syntax-table',
  38. `font-lock-beginning-of-syntax-function' and
  39. `font-lock-keywords-case-fold-search'.
  40.  
  41. If `font-lock-defaults' is currently set, it is used.  Otherwise, the
  42. symbol naming the major mode is examined for a `font-lock-defaults'
  43. property.  If that is not present, but a variable `foo-mode-font-lock-keywords'
  44. is, the value of that variable is used as the default for
  45. `font-lock-keywords'.  Various other backward-compatible behaviors also
  46. exist -- if you're curious, look at the source.
  47.  
  48. The value of `font-lock-maximum-decoration' is used to determine which
  49. set of keywords applies, if more than one exists.
  50.  
  51. This will also put the buffer into Font Lock mode if any keywords exist
  52. and if auto-fontification is called for, as determined by
  53. `font-lock-auto-fontify', `font-lock-mode-enable-list', and
  54. `font-lock-mode-disable-list'.
  55.  
  56. Calling this function multiple times in the same buffer is safe -- this
  57. function keeps track of whether it has already been called in this
  58. buffer, and does nothing if so.  This allows for multiple ways of getting
  59. Font Lock properly initialized in a buffer, to deal with existing major
  60. modes that do not call this function. (For example, Font Lock adds this
  61. function to `find-file-hooks'.)
  62.  
  63. Major modes that have any font-lock defaults specified should call this
  64. function during their initialization process, after they have set
  65. the variable `major-mode'.
  66.  
  67. If EXPLICIT-DEFAULTS is t, this function will not check whether it
  68. has already been run in this buffer, and will always do the full
  69. computation.
  70.  
  71. If EXPLICIT-DEFAULTS is not nil and not t, it should be something
  72. that is allowable as a value for `font-lock-defaults' and will be
  73. used to initialize the Font Lock variables."
  74.  
  75.   (when
  76.       (and
  77.        (featurep 'font-lock)
  78.        (if font-lock-auto-fontify
  79.        (not (memq major-mode font-lock-mode-disable-list))
  80.      (memq major-mode font-lock-mode-enable-list))
  81.        (font-lock-set-defaults-1 explicit-defaults)
  82.        font-lock-keywords)
  83.     (turn-on-font-lock)))
  84.  
  85. (provide 'fontl-hooks)
  86.  
  87. ;;; fontl-hooks.el ends here
  88.